// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.AspNetCore.App.Analyzers.Infrastructure;

internal static class WellKnownTypeData
{
    public enum WellKnownType
    {
        Microsoft_AspNetCore_Components_Rendering_RenderTreeBuilder,
        Microsoft_AspNetCore_Http_IHeaderDictionary,
        Microsoft_AspNetCore_Http_Metadata_IEndpointMetadataProvider,
        Microsoft_AspNetCore_Http_Metadata_IEndpointParameterMetadataProvider,
        Microsoft_AspNetCore_Http_Metadata_IFromBodyMetadata,
        Microsoft_AspNetCore_Http_Metadata_IFromFormMetadata,
        Microsoft_AspNetCore_Http_Metadata_IFromHeaderMetadata,
        Microsoft_AspNetCore_Http_Metadata_IFromQueryMetadata,
        Microsoft_AspNetCore_Http_Metadata_IFromServiceMetadata,
        Microsoft_AspNetCore_Http_Metadata_IFromRouteMetadata,
        Microsoft_AspNetCore_Http_HeaderDictionaryExtensions,
        Microsoft_AspNetCore_Routing_IEndpointRouteBuilder,
        Microsoft_AspNetCore_Mvc_ControllerAttribute,
        Microsoft_AspNetCore_Mvc_NonControllerAttribute,
        Microsoft_AspNetCore_Mvc_NonActionAttribute,
        Microsoft_AspNetCore_Http_AsParametersAttribute,
        Microsoft_Extensions_Primitives_StringValues,
        System_Threading_CancellationToken,
        Microsoft_AspNetCore_Http_HttpContext,
        Microsoft_AspNetCore_Http_HttpRequest,
        Microsoft_AspNetCore_Http_HttpResponse,
        System_Security_Claims_ClaimsPrincipal,
        Microsoft_AspNetCore_Http_IFormCollection,
        Microsoft_AspNetCore_Http_IFormFileCollection,
        Microsoft_AspNetCore_Http_IFormFile,
        System_Collections_IEnumerable,
        System_DateOnly,
        System_DateTimeOffset,
        System_IO_Stream,
        System_IO_Pipelines_PipeReader,
        System_IFormatProvider,
        System_Uri,
        Microsoft_AspNetCore_Builder_ConfigureHostBuilder,
        Microsoft_AspNetCore_Builder_ConfigureWebHostBuilder,
        Microsoft_Extensions_Hosting_GenericHostWebHostBuilderExtensions,
        Microsoft_AspNetCore_Hosting_WebHostBuilderExtensions,
        Microsoft_AspNetCore_Hosting_HostingAbstractionsWebHostBuilderExtensions,
        Microsoft_Extensions_Hosting_HostingHostBuilderExtensions,
        Microsoft_AspNetCore_Builder_EndpointRoutingApplicationBuilderExtensions,
        Microsoft_AspNetCore_Builder_WebApplication,
        Microsoft_AspNetCore_Builder_EndpointRouteBuilderExtensions,
        System_Delegate,
        Microsoft_AspNetCore_Mvc_ModelBinding_IBinderTypeProviderMetadata,
        Microsoft_AspNetCore_Mvc_BindAttribute,
        Microsoft_AspNetCore_Http_IResult,
        Microsoft_AspNetCore_Mvc_IActionResult,
        Microsoft_AspNetCore_Mvc_Infrastructure_IConvertToActionResult,
        Microsoft_AspNetCore_Http_RequestDelegate,
        System_Threading_Tasks_Task,
        System_Threading_Tasks_Task_T,
        System_Threading_Tasks_ValueTask,
        System_Threading_Tasks_ValueTask_T,
        System_Reflection_ParameterInfo,
        Microsoft_AspNetCore_Http_IBindableFromHttpContext_T,
        System_IParsable_T,
        Microsoft_AspNetCore_Builder_AuthorizationEndpointConventionBuilderExtensions,
        Microsoft_AspNetCore_Http_OpenApiRouteHandlerBuilderExtensions,
        Microsoft_AspNetCore_Builder_CorsEndpointConventionBuilderExtensions,
        Microsoft_Extensions_DependencyInjection_OutputCacheConventionBuilderExtensions,
        Microsoft_AspNetCore_Builder_RateLimiterEndpointConventionBuilderExtensions,
        Microsoft_AspNetCore_Builder_RoutingEndpointConventionBuilderExtensions,
        Microsoft_AspNetCore_Mvc_RouteAttribute,
        Microsoft_AspNetCore_Mvc_HttpDeleteAttribute,
        Microsoft_AspNetCore_Mvc_HttpGetAttribute,
        Microsoft_AspNetCore_Mvc_HttpHeadAttribute,
        Microsoft_AspNetCore_Mvc_HttpOptionsAttribute,
        Microsoft_AspNetCore_Mvc_HttpPatchAttribute,
        Microsoft_AspNetCore_Mvc_HttpPostAttribute,
        Microsoft_AspNetCore_Mvc_HttpPutAttribute,
        Microsoft_AspNetCore_Http_EndpointDescriptionAttribute,
        Microsoft_AspNetCore_Http_EndpointSummaryAttribute,
        Microsoft_AspNetCore_Http_TagsAttribute,
        Microsoft_AspNetCore_Routing_EndpointGroupNameAttribute,
        Microsoft_AspNetCore_Routing_EndpointNameAttribute,
        Microsoft_AspNetCore_Routing_ExcludeFromDescriptionAttribute,
        Microsoft_AspNetCore_Cors_DisableCorsAttribute,
        Microsoft_AspNetCore_Cors_EnableCorsAttribute,
        Microsoft_AspNetCore_OutputCaching_OutputCacheAttribute,
        Microsoft_AspNetCore_RateLimiting_DisableRateLimitingAttribute,
        Microsoft_AspNetCore_RateLimiting_EnableRateLimitingAttribute,
        Microsoft_AspNetCore_Mvc_ActionNameAttribute,
        Microsoft_AspNetCore_Mvc_DisableRequestSizeLimitAttribute,
        Microsoft_AspNetCore_Mvc_FormatFilterAttribute,
        Microsoft_AspNetCore_Mvc_ProducesAttribute,
        Microsoft_AspNetCore_Mvc_ProducesDefaultResponseTypeAttribute,
        Microsoft_AspNetCore_Mvc_ProducesErrorResponseTypeAttribute,
        Microsoft_AspNetCore_Mvc_ProducesResponseTypeAttribute,
        Microsoft_AspNetCore_Mvc_RequestFormLimitsAttribute,
        Microsoft_AspNetCore_Mvc_RequestSizeLimitAttribute,
        Microsoft_AspNetCore_Mvc_RequireHttpsAttribute,
        Microsoft_AspNetCore_Mvc_ResponseCacheAttribute,
        Microsoft_AspNetCore_Mvc_ServiceFilterAttribute,
        Microsoft_AspNetCore_Mvc_TypeFilterAttribute,
        Microsoft_AspNetCore_Mvc_ApiExplorer_ApiConventionNameMatchAttribute,
        Microsoft_AspNetCore_Mvc_Filters_ResultFilterAttribute,
        Microsoft_AspNetCore_Mvc_Infrastructure_DefaultStatusCodeAttribute,
        Microsoft_AspNetCore_Mvc_AutoValidateAntiforgeryTokenAttribute,
        Microsoft_AspNetCore_Mvc_IgnoreAntiforgeryTokenAttribute,
        Microsoft_AspNetCore_Mvc_ViewFeatures_SaveTempDataAttribute,
        Microsoft_AspNetCore_Mvc_SkipStatusCodePagesAttribute,
        Microsoft_AspNetCore_Mvc_ValidateAntiForgeryTokenAttribute,
        Microsoft_AspNetCore_Mvc_ModelBinding_EmptyBodyBehavior,
        Microsoft_AspNetCore_Authorization_AllowAnonymousAttribute,
        Microsoft_AspNetCore_Authorization_AuthorizeAttribute,
        Microsoft_Extensions_DependencyInjection_PolicyServiceCollectionExtensions,
        Microsoft_Extensions_DependencyInjection_FromKeyedServicesAttribute,
        Microsoft_AspNetCore_Authorization_AuthorizationOptions,
        Microsoft_Extensions_DependencyInjection_IServiceCollection,
        Microsoft_AspNetCore_Authorization_IAllowAnonymous,
        Microsoft_AspNetCore_Authorization_IAuthorizeData,
        System_AttributeUsageAttribute,
        System_Text_Json_Serialization_JsonDerivedTypeAttribute,
        System_Text_Json_Serialization_JsonIgnoreAttribute,
        System_ComponentModel_DataAnnotations_DisplayAttribute,
        System_ComponentModel_DataAnnotations_ValidationAttribute,
        System_ComponentModel_DataAnnotations_RequiredAttribute,
        System_ComponentModel_DataAnnotations_CustomValidationAttribute,
        System_ComponentModel_DataAnnotations_IValidatableObject,
        Microsoft_Extensions_Validation_SkipValidationAttribute,
        System_Type,
    }

    public static string[] WellKnownTypeNames =
    [
        "Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder",
        "Microsoft.AspNetCore.Http.IHeaderDictionary",
        "Microsoft.AspNetCore.Http.Metadata.IEndpointMetadataProvider",
        "Microsoft.AspNetCore.Http.Metadata.IEndpointParameterMetadataProvider",
        "Microsoft.AspNetCore.Http.Metadata.IFromBodyMetadata",
        "Microsoft.AspNetCore.Http.Metadata.IFromFormMetadata",
        "Microsoft.AspNetCore.Http.Metadata.IFromHeaderMetadata",
        "Microsoft.AspNetCore.Http.Metadata.IFromQueryMetadata",
        "Microsoft.AspNetCore.Http.Metadata.IFromServiceMetadata",
        "Microsoft.AspNetCore.Http.Metadata.IFromRouteMetadata",
        "Microsoft.AspNetCore.Http.HeaderDictionaryExtensions",
        "Microsoft.AspNetCore.Routing.IEndpointRouteBuilder",
        "Microsoft.AspNetCore.Mvc.ControllerAttribute",
        "Microsoft.AspNetCore.Mvc.NonControllerAttribute",
        "Microsoft.AspNetCore.Mvc.NonActionAttribute",
        "Microsoft.AspNetCore.Http.AsParametersAttribute",
        "Microsoft.Extensions.Primitives.StringValues",
        "System.Threading.CancellationToken",
        "Microsoft.AspNetCore.Http.HttpContext",
        "Microsoft.AspNetCore.Http.HttpRequest",
        "Microsoft.AspNetCore.Http.HttpResponse",
        "System.Security.Claims.ClaimsPrincipal",
        "Microsoft.AspNetCore.Http.IFormCollection",
        "Microsoft.AspNetCore.Http.IFormFileCollection",
        "Microsoft.AspNetCore.Http.IFormFile",
        "System.Collections.IEnumerable",
        "System.DateOnly",
        "System.DateTimeOffset",
        "System.IO.Stream",
        "System.IO.Pipelines.PipeReader",
        "System.IFormatProvider",
        "System.Uri",
        "Microsoft.AspNetCore.Builder.ConfigureHostBuilder",
        "Microsoft.AspNetCore.Builder.ConfigureWebHostBuilder",
        "Microsoft.Extensions.Hosting.GenericHostWebHostBuilderExtensions",
        "Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions",
        "Microsoft.AspNetCore.Hosting.HostingAbstractionsWebHostBuilderExtensions",
        "Microsoft.Extensions.Hosting.HostingHostBuilderExtensions",
        "Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions",
        "Microsoft.AspNetCore.Builder.WebApplication",
        "Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions",
        "System.Delegate",
        "Microsoft.AspNetCore.Mvc.ModelBinding.IBinderTypeProviderMetadata",
        "Microsoft.AspNetCore.Mvc.BindAttribute",
        "Microsoft.AspNetCore.Http.IResult",
        "Microsoft.AspNetCore.Mvc.IActionResult",
        "Microsoft.AspNetCore.Mvc.Infrastructure.IConvertToActionResult",
        "Microsoft.AspNetCore.Http.RequestDelegate",
        "System.Threading.Tasks.Task",
        "System.Threading.Tasks.Task`1",
        "System.Threading.Tasks.ValueTask",
        "System.Threading.Tasks.ValueTask`1",
        "System.Reflection.ParameterInfo",
        "Microsoft.AspNetCore.Http.IBindableFromHttpContext`1",
        "System.IParsable`1",
        "Microsoft.AspNetCore.Builder.AuthorizationEndpointConventionBuilderExtensions",
        "Microsoft.AspNetCore.Http.OpenApiRouteHandlerBuilderExtensions",
        "Microsoft.AspNetCore.Builder.CorsEndpointConventionBuilderExtensions",
        "Microsoft.Extensions.DependencyInjection.OutputCacheConventionBuilderExtensions",
        "Microsoft.AspNetCore.Builder.RateLimiterEndpointConventionBuilderExtensions",
        "Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions",
        "Microsoft.AspNetCore.Mvc.RouteAttribute",
        "Microsoft.AspNetCore.Mvc.HttpDeleteAttribute",
        "Microsoft.AspNetCore.Mvc.HttpGetAttribute",
        "Microsoft.AspNetCore.Mvc.HttpHeadAttribute",
        "Microsoft.AspNetCore.Mvc.HttpOptionsAttribute",
        "Microsoft.AspNetCore.Mvc.HttpPatchAttribute",
        "Microsoft.AspNetCore.Mvc.HttpPostAttribute",
        "Microsoft.AspNetCore.Mvc.HttpPutAttribute",
        "Microsoft.AspNetCore.Http.EndpointDescriptionAttribute",
        "Microsoft.AspNetCore.Http.EndpointSummaryAttribute",
        "Microsoft.AspNetCore.Http.TagsAttribute",
        "Microsoft.AspNetCore.Routing.EndpointGroupNameAttribute",
        "Microsoft.AspNetCore.Routing.EndpointNameAttribute",
        "Microsoft.AspNetCore.Routing.ExcludeFromDescriptionAttribute",
        "Microsoft.AspNetCore.Cors.DisableCorsAttribute",
        "Microsoft.AspNetCore.Cors.EnableCorsAttribute",
        "Microsoft.AspNetCore.OutputCaching.OutputCacheAttribute",
        "Microsoft.AspNetCore.RateLimiting.DisableRateLimitingAttribute",
        "Microsoft.AspNetCore.RateLimiting.EnableRateLimitingAttribute",
        "Microsoft.AspNetCore.Mvc.ActionNameAttribute",
        "Microsoft.AspNetCore.Mvc.DisableRequestSizeLimitAttribute",
        "Microsoft.AspNetCore.Mvc.FormatFilterAttribute",
        "Microsoft.AspNetCore.Mvc.ProducesAttribute",
        "Microsoft.AspNetCore.Mvc.ProducesDefaultResponseTypeAttribute",
        "Microsoft.AspNetCore.Mvc.ProducesErrorResponseTypeAttribute",
        "Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute",
        "Microsoft.AspNetCore.Mvc.RequestFormLimitsAttribute",
        "Microsoft.AspNetCore.Mvc.RequestSizeLimitAttribute",
        "Microsoft.AspNetCore.Mvc.RequireHttpsAttribute",
        "Microsoft.AspNetCore.Mvc.ResponseCacheAttribute",
        "Microsoft.AspNetCore.Mvc.ServiceFilterAttribute",
        "Microsoft.AspNetCore.Mvc.TypeFilterAttribute",
        "Microsoft.AspNetCore.Mvc.ApiExplorer.ApiConventionNameMatchAttribute",
        "Microsoft.AspNetCore.Mvc.Filters.ResultFilterAttribute",
        "Microsoft.AspNetCore.Mvc.Infrastructure.DefaultStatusCodeAttribute",
        "Microsoft.AspNetCore.Mvc.AutoValidateAntiforgeryTokenAttribute",
        "Microsoft.AspNetCore.Mvc.IgnoreAntiforgeryTokenAttribute",
        "Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute",
        "Microsoft.AspNetCore.Mvc.SkipStatusCodePagesAttribute",
        "Microsoft.AspNetCore.Mvc.ValidateAntiForgeryTokenAttribute",
        "Microsoft.AspNetCore.Mvc.ModelBinding.EmptyBodyBehavior",
        "Microsoft.AspNetCore.Authorization.AllowAnonymousAttribute",
        "Microsoft.AspNetCore.Authorization.AuthorizeAttribute",
        "Microsoft.Extensions.DependencyInjection.PolicyServiceCollectionExtensions",
        "Microsoft.Extensions.DependencyInjection.FromKeyedServicesAttribute",
        "Microsoft.AspNetCore.Authorization.AuthorizationOptions",
        "Microsoft.Extensions.DependencyInjection.IServiceCollection",
        "Microsoft.AspNetCore.Authorization.IAllowAnonymous",
        "Microsoft.AspNetCore.Authorization.IAuthorizeData",
        "System.AttributeUsageAttribute",
        "System.Text.Json.Serialization.JsonDerivedTypeAttribute",
        "System.Text.Json.Serialization.JsonIgnoreAttribute",
        "System.ComponentModel.DataAnnotations.DisplayAttribute",
        "System.ComponentModel.DataAnnotations.ValidationAttribute",
        "System.ComponentModel.DataAnnotations.RequiredAttribute",
        "System.ComponentModel.DataAnnotations.CustomValidationAttribute",
        "System.ComponentModel.DataAnnotations.IValidatableObject",
        "Microsoft.Extensions.Validation.SkipValidationAttribute",
        "System.Type",
    ];
}
